package com.cn.yunhe.rentcars.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.web.bind.annotation.RequestParam;

import com.cn.yunhe.rentcars.model.Account;

/**
 * 权限管理---登陆系统用户信息管理，
 * @author 赵志学
 *
 */
@Mapper
public interface AccountMapper {
	/**
	 * 添加系统用户信息
	 * 传入一个Account 对象
	 * @param account
	 */
	public void addAccount(Account account);
	/**
	 * 修改系统用户信息
	 * 传入一个Account 对象
	 * @param account
	 */
	public void editAccount(Account account);
	/**
	 * 删除系统用户信息
	 * 传入一个用户ID 根据用户ID进行删除。
	 * @param uid
	 */
	public void deleteAccount(String uid);
	/**
	 * 批量删除系统用户信息
	 * 传入要删除的用户信息ID list
	 * @param listId
	 */
	public void deleteAccounts(List<String> listId);
	/**
	 * 模糊查询系统用户信息
	 * 传入一个账户名称，根据账户名称查找
	 * @param username
	 * @return
	 */
	public List<Account> getAccounts(String username);
	/**
	 * 查询系统用户信息，
	 * 传递一个Map集合，进行分页显示
	 * @param map
	 * @return
	 */
	public List<Account> findAccounts(Map<String, String> map);
	/**
	 * 查询数据库中所有的记录总数，返回一个整型变量
	 * @return
	 */
	public int selectCount();
	/**
	 * 根据系统用户的ID 到数据库中查询出该用户的详细信息，用作用户信息修改。
	 * @param uid
	 * @return
	 */
	public Account selectRow(String uid);
	/**
	 * 根据用户的ID 修改用户的状态：停用、或者启用
	 * @param userid 用户ID
	 * @param isabled 状态
	 */
	public void handleAccountState(Map<String,Object> map);
	/**
	 * 根据账户名查找账户的详细信息。，返回一个用户对象。Account
	 * @param username
	 * @return
	 */
	public Account getAccountByName(String username);
	/**
	 * 根据用户名，多表查询，将用户表里的角色编号 显示成角色名称，用于用户信息查看。
	 * @param username
	 * @return
	 */
	public Account getAccountRole(String username);
	
	/**
	 * @author 朱钦明增加方法
	 * 
	 * 修改个人信息
	 * @param map 传入要修改的个人信息
	 */
	public void updateAccountPass(Map<String,Object> map);

}
